package org.shiro.service;

import org.shiro.bean.PageBean;
import org.shiro.entity.User;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/** @author HKC */
public interface UserService {
  /**
   * 按照名称查询
   *
   * @param username
   * @return
   */
  User findUserByName(String username);

  /**
   * 添加
   *
   * @param user
   * @return
   */
  int create(User user);

  /**
   * 删除
   *
   * @param id
   * @return
   */
  int remove(Long id);

  /**
   * 查询
   *
   * @param id
   * @return
   */
  List<User> load(Long id);

  /**
   *
   * @param id
   * @return
   */
  User loadById(Long id);

  /**
   * 更改
   *
   * @param user
   * @return
   */
  int modity(User user);

  /**
   * 查询所有
   *
   * @return
   */
  List<User> selectByAll();

  /**
   * 指定行数查询
   *
   * @param offset
   * @param limit
   * @return
   */
  List<User> queryByLimit(int offset, int limit);

  /**
   * 查询用户对应角色
   * @param userId
   * @return
   */
  List<User> selectRoleByUserId(Long userId);

  /**
   * 更改密码
   * @param username
   * @param oldPassword
   * @param newPassword
   * @return
   */
    int changePassword(String username, String oldPassword, String newPassword);

  /**
   * 分页查询
   * @param pageBean
   * @return
   */
    List<User> selectByPage(PageBean pageBean);

  /**
   * 更换用户图像
   * @param file
   * @param id
   * @return
   */
    int changeImg(MultipartFile file, Long id);
}
